<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据类型</title>
    <script>

        /*
         数据类型指JS中的字面量的类型
           数值（number）
            - 数值就是现实生活中的数字，包括整数（int）和浮点数（float）
            - 在js中，所有的数字都是number类型
            - 数值在计算机底层使用64位的二进制数据保存
                - 所以在JS中，并不是可以精确的表示任意数字
                    - 对于整数来说，精确表示最大值 九千万亿，9后边15个零

            - 特殊的数字：
                Infinity 表示正无穷
                -Infinity 表示负无穷
                NaN (Not a Number) 表示非法数字


            了解：
                - 为了解决JS中不能存储大整数的问题，在ES2020版本中，
                    定义了一种新的数据的数据类型（bigint），专门用来表示大整数
                - 大整数以n结尾，大小没有限制，但是目前标准还没有正式推出，
                    即使推出也不会立即被所有浏览器支持（主要是IE），所以现在只需了解一下即可。




         */
        var a = 10; // 整数
        a = 3.5; // 浮点数

        // 创建数字时，默认创建的都是10进制的数字，可以通过一些特殊方式，来通过其他的进制来创建数字
        // 0b 开头表示二进制数字
        // 0o 开头表示八进制数字
        // 0x 开头表示十六进制数字
        a = 0b10; // 使用二进制的形式创建数字
        a = 0o10; // 使用八进制的形式创建数字
        a = 0xff; // 使用十六进制的形式胡藏家数字

        //在JS中可以确保大部分整数运算得到一个精确的结果，但是一旦超过16位数字，运算结果是不精确的值
        a = 9111111111111432; // 16位整数可以精确表示
        a = 91111111111114325; // 超过16位，数字显示为近似值
        a = 911111111111143259111111111111432591; // 当超过一定范围，数字将会以科学计数法来显示
        a = 911111111111143259111111111111432591 ** 10; // 当数字再大的时候，会显示Infinity，表示正无穷

        //在JS中，小数可以确保小数点后15位的值准确，超过15位则会显示近似值
        a = 1.123456789012345;
        //在JS中，小数的计算可能会出现近似的结果
        //如果计算要求的精度比较高，千万不要在JS中直接算
        a = 0.1 + 0.2;

        a = 10 - 'hello';

        // console.log(a);

        // var b = 911111111111143251239111111111111432512391111111111114325123n;
        // console.log(b);


    </script>
</head>
<body>

</body>
</html>